package com.prd.dto;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;

/**
 * <p>
 * 时间节点记录
 * </p>
 *
 * @author lizhaoyi
 * @since 2023-11-06
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class WorkTimeNodeRecordDTO implements Serializable {

    private static final long serialVersionUID = 1L;

    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;

    /**
     * 开始时间
     */
    @ApiModelProperty("开始时间")
    private LocalDateTime startTime;

    /**
     * 要求完成时间
     */
    @ApiModelProperty("要求完成时间")
    private LocalDateTime requiredCompleTime;

    /**
     * 完成时间
     */
    @ApiModelProperty("完成时间")
    private LocalDateTime compledTime;

    /**
     * 完成周期
     */
    @ApiModelProperty("完成周期")
    private Integer compledCycle;

    /**
     * 延期周期
     */
    @ApiModelProperty("延期周期")
    private Integer delayCycle;

    /**
     * 实际完成周期
     */
    @ApiModelProperty("实际完成周期")
    private Integer actualCompledCycle;

    /**
     * 紧急程度0-一般1-紧急
     */
    @ApiModelProperty("紧急程度0-一般1-紧急")
    private Integer urgency;

    /**
     * 执行汇报时间
     */
    @ApiModelProperty("执行汇报时间")
    private LocalDateTime exectionReportTime;

    /**
     * 督导完成时间
     */
    @ApiModelProperty("督导完成时间")
    private LocalDateTime supervisonCompledTime;

    /**
     * 所属模块
     */
    @ApiModelProperty("所属模块")
    private String module;

    /**
     * 工作单id
     */
    @ApiModelProperty("工作单id")
    private Long workOrderId;

    /**
     * 工作联络单id
     */
    @ApiModelProperty("工作联络单id")
    private Long workContactFormId;

    /**
     * 工作报告id
     */
    @ApiModelProperty("工作报告id")
    private Long workReportId;

    /**
     * 创建时间
     */
    @ApiModelProperty("创建时间")
    private LocalDateTime createdTime;

    /**
     * 创建人
     */
    @ApiModelProperty("创建人")
    private String createdBy;

    /**
     * 创建人id
     */
    @ApiModelProperty("创建人id")
    private Integer createdById;
    /**
     * 时间节点状态
     */
    @ApiModelProperty("时间节点状态")
    private Integer status;


}
